package TouristManagement;

/**
 * Interface definition : VisitManagement
 * 
 * @author OpenORB Compiler
 */
public abstract class VisitManagementPOA extends org.omg.PortableServer.Servant
        implements VisitManagementOperations, org.omg.CORBA.portable.InvokeHandler
{
    public VisitManagement _this()
    {
        return VisitManagementHelper.narrow(_this_object());
    }

    public VisitManagement _this(org.omg.CORBA.ORB orb)
    {
        return VisitManagementHelper.narrow(_this_object(orb));
    }

    private static String [] _ids_list =
    {
        "IDL:TouristManagement/VisitManagement:1.0"
    };

    public String[] _all_interfaces(org.omg.PortableServer.POA poa, byte [] objectId)
    {
        return _ids_list;
    }

    private static final java.util.Map operationMap = new java.util.HashMap();

    static {
            operationMap.put("addAdvice",
                    new Operation_addAdvice());
            operationMap.put("addVisit",
                    new Operation_addVisit());
            operationMap.put("createTourist",
                    new Operation_createTourist());
            operationMap.put("existTourist",
                    new Operation_existTourist());
            operationMap.put("getAdviceAverage",
                    new Operation_getAdviceAverage());
            operationMap.put("getAffluenceQuotidienne",
                    new Operation_getAffluenceQuotidienne());
            operationMap.put("getCoordsGPS",
                    new Operation_getCoordsGPS());
            operationMap.put("getDateDebValid",
                    new Operation_getDateDebValid());
            operationMap.put("getDateFinValid",
                    new Operation_getDateFinValid());
            operationMap.put("getHoraireFermeture",
                    new Operation_getHoraireFermeture());
            operationMap.put("getHoraireOuverture",
                    new Operation_getHoraireOuverture());
            operationMap.put("getIdSite",
                    new Operation_getIdSite());
            operationMap.put("getNbVisiteurActuel",
                    new Operation_getNbVisiteurActuel());
            operationMap.put("getNbVisiteurMaximal",
                    new Operation_getNbVisiteurMaximal());
            operationMap.put("getNomSite",
                    new Operation_getNomSite());
            operationMap.put("getVisitSequence",
                    new Operation_getVisitSequence());
            operationMap.put("getVisitingSite",
                    new Operation_getVisitingSite());
            operationMap.put("getdurationAverage",
                    new Operation_getdurationAverage());
            operationMap.put("getdurationMax",
                    new Operation_getdurationMax());
            operationMap.put("getdurationMin",
                    new Operation_getdurationMin());
            operationMap.put("isVisitingSite",
                    new Operation_isVisitingSite());
            operationMap.put("updateVisitEndHour",
                    new Operation_updateVisitEndHour());
            operationMap.put("verifyVisit",
                    new Operation_verifyVisit());
    }

    public final org.omg.CORBA.portable.OutputStream _invoke(final String opName,
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler)
    {

        final AbstractOperation operation = (AbstractOperation)operationMap.get(opName);

        if (null == operation) {
            throw new org.omg.CORBA.BAD_OPERATION(opName);
        }

        return operation.invoke(this, _is, handler);
    }

    // helper methods
    private org.omg.CORBA.portable.OutputStream _invoke_getIdSite(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;

        short[] _arg_result = getIdSite();

        _output = handler.createReply();
        TouristManagement.ListShortHelper.write(_output,_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_createTourist(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        String arg0_in = _is.read_string();
        TouristManagement.DateV arg1_in = TouristManagement.DateVHelper.read(_is);
        TouristManagement.DateV arg2_in = TouristManagement.DateVHelper.read(_is);

        short _arg_result = createTourist(arg0_in, arg1_in, arg2_in);

        _output = handler.createReply();
        _output.write_short(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_updateVisitEndHour(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();
        short arg1_in = _is.read_short();

        boolean _arg_result = updateVisitEndHour(arg0_in, arg1_in);

        _output = handler.createReply();
        _output.write_boolean(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_verifyVisit(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();
        short arg1_in = _is.read_short();

        boolean _arg_result = verifyVisit(arg0_in, arg1_in);

        _output = handler.createReply();
        _output.write_boolean(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getVisitingSite(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        short _arg_result = getVisitingSite(arg0_in);

        _output = handler.createReply();
        _output.write_short(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getAdviceAverage(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        TouristManagement.Advice _arg_result = getAdviceAverage(arg0_in);

        _output = handler.createReply();
        TouristManagement.AdviceHelper.write(_output,_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_addAdvice(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();
        short arg1_in = _is.read_short();
        TouristManagement.Advice arg2_in = TouristManagement.AdviceHelper.read(_is);

        boolean _arg_result = addAdvice(arg0_in, arg1_in, arg2_in);

        _output = handler.createReply();
        _output.write_boolean(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getdurationAverage(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        short _arg_result = getdurationAverage(arg0_in);

        _output = handler.createReply();
        _output.write_short(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getdurationMax(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        short _arg_result = getdurationMax(arg0_in);

        _output = handler.createReply();
        _output.write_short(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getdurationMin(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        short _arg_result = getdurationMin(arg0_in);

        _output = handler.createReply();
        _output.write_short(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getHoraireOuverture(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        TouristManagement.Hours _arg_result = getHoraireOuverture(arg0_in);

        _output = handler.createReply();
        TouristManagement.HoursHelper.write(_output,_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getHoraireFermeture(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        TouristManagement.Hours _arg_result = getHoraireFermeture(arg0_in);

        _output = handler.createReply();
        TouristManagement.HoursHelper.write(_output,_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getNbVisiteurActuel(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        short _arg_result = getNbVisiteurActuel(arg0_in);

        _output = handler.createReply();
        _output.write_short(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getNbVisiteurMaximal(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        short _arg_result = getNbVisiteurMaximal(arg0_in);

        _output = handler.createReply();
        _output.write_short(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getDateDebValid(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        TouristManagement.DateV _arg_result = getDateDebValid(arg0_in);

        _output = handler.createReply();
        TouristManagement.DateVHelper.write(_output,_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getDateFinValid(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        TouristManagement.DateV _arg_result = getDateFinValid(arg0_in);

        _output = handler.createReply();
        TouristManagement.DateVHelper.write(_output,_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getNomSite(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        String _arg_result = getNomSite(arg0_in);

        _output = handler.createReply();
        _output.write_string(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getCoordsGPS(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        TouristManagement.CoordsGPS _arg_result = getCoordsGPS(arg0_in);

        _output = handler.createReply();
        TouristManagement.CoordsGPSHelper.write(_output,_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_addVisit(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();
        short arg1_in = _is.read_short();

        boolean _arg_result = addVisit(arg0_in, arg1_in);

        _output = handler.createReply();
        _output.write_boolean(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_existTourist(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        boolean _arg_result = existTourist(arg0_in);

        _output = handler.createReply();
        _output.write_boolean(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getVisitSequence(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;

        String _arg_result = getVisitSequence();

        _output = handler.createReply();
        _output.write_string(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_isVisitingSite(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        boolean _arg_result = isVisitingSite(arg0_in);

        _output = handler.createReply();
        _output.write_boolean(_arg_result);

        return _output;
    }

    private org.omg.CORBA.portable.OutputStream _invoke_getAffluenceQuotidienne(
            final org.omg.CORBA.portable.InputStream _is,
            final org.omg.CORBA.portable.ResponseHandler handler) {
        org.omg.CORBA.portable.OutputStream _output;
        short arg0_in = _is.read_short();

        short _arg_result = getAffluenceQuotidienne(arg0_in);

        _output = handler.createReply();
        _output.write_short(_arg_result);

        return _output;
    }

    // operation classes
    private abstract static class AbstractOperation {
        protected abstract org.omg.CORBA.portable.OutputStream invoke(
                VisitManagementPOA target,
                org.omg.CORBA.portable.InputStream _is,
                org.omg.CORBA.portable.ResponseHandler handler);
    }

    private static final class Operation_getIdSite extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getIdSite(_is, handler);
        }
    }

    private static final class Operation_createTourist extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_createTourist(_is, handler);
        }
    }

    private static final class Operation_updateVisitEndHour extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_updateVisitEndHour(_is, handler);
        }
    }

    private static final class Operation_verifyVisit extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_verifyVisit(_is, handler);
        }
    }

    private static final class Operation_getVisitingSite extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getVisitingSite(_is, handler);
        }
    }

    private static final class Operation_getAdviceAverage extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getAdviceAverage(_is, handler);
        }
    }

    private static final class Operation_addAdvice extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_addAdvice(_is, handler);
        }
    }

    private static final class Operation_getdurationAverage extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getdurationAverage(_is, handler);
        }
    }

    private static final class Operation_getdurationMax extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getdurationMax(_is, handler);
        }
    }

    private static final class Operation_getdurationMin extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getdurationMin(_is, handler);
        }
    }

    private static final class Operation_getHoraireOuverture extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getHoraireOuverture(_is, handler);
        }
    }

    private static final class Operation_getHoraireFermeture extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getHoraireFermeture(_is, handler);
        }
    }

    private static final class Operation_getNbVisiteurActuel extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getNbVisiteurActuel(_is, handler);
        }
    }

    private static final class Operation_getNbVisiteurMaximal extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getNbVisiteurMaximal(_is, handler);
        }
    }

    private static final class Operation_getDateDebValid extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getDateDebValid(_is, handler);
        }
    }

    private static final class Operation_getDateFinValid extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getDateFinValid(_is, handler);
        }
    }

    private static final class Operation_getNomSite extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getNomSite(_is, handler);
        }
    }

    private static final class Operation_getCoordsGPS extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getCoordsGPS(_is, handler);
        }
    }

    private static final class Operation_addVisit extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_addVisit(_is, handler);
        }
    }

    private static final class Operation_existTourist extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_existTourist(_is, handler);
        }
    }

    private static final class Operation_getVisitSequence extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getVisitSequence(_is, handler);
        }
    }

    private static final class Operation_isVisitingSite extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_isVisitingSite(_is, handler);
        }
    }

    private static final class Operation_getAffluenceQuotidienne extends AbstractOperation
    {
        protected org.omg.CORBA.portable.OutputStream invoke(
                final VisitManagementPOA target,
                final org.omg.CORBA.portable.InputStream _is,
                final org.omg.CORBA.portable.ResponseHandler handler) {
            return target._invoke_getAffluenceQuotidienne(_is, handler);
        }
    }

}
